# SPDX-License-Identifier: GPL-2.0-only
menuconfig ARCH_MVEBU
	bool "Marvell Engineering Business Unit (MVEBU) SoCs"
	depends on ARCH_MULTI_V7 || ARCH_MULTI_V5
	select ARCH_SUPPORTS_BIG_ENDIAN
	select CLKSRC_MMIO
	select PINCTRL
	select PLAT_ORION
	select SOC_BUS
	select MVEBU_MBUS
	select ZONE_DMA if ARM_LPAE
	select GPIOLIB
	select PCI_QUIRKS if PCI

if ARCH_MVEBU

config MACH_MVEBU_ANY
	bool

config MACH_MVEBU_V7
	bool
	select ARMADA_370_XP_TIMER
	select CACHE_L2X0
	select ARM_CPU_SUSPEND
	select MACH_MVEBU_ANY
	select MVEBU_CLK_COREDIV

config MACH_ARMADA_370
	bool "Marvell Armada 370 boards"
	depends on ARCH_MULTI_V7
	select ARMADA_370_CLK
	select ARMADA_370_XP_IRQ
	select CPU_PJ4B
	select MACH_MVEBU_V7
	select PINCTRL_ARMADA_370
	help
	  Say 'Y' here if you want your kernel to support boards based
	  on the Marvell Armada 370 SoC with device tree.

config MACH_ARMADA_375
	bool "Marvell Armada 375 boards"
	depends on ARCH_MULTI_V7
	select ARMADA_370_XP_IRQ
	select ARM_ERRATA_720789
	select PL310_ERRATA_753970
	select ARM_GIC
	select ARMADA_375_CLK
	select HAVE_ARM_SCU
	select HAVE_ARM_TWD if SMP
	select HAVE_SMP
	select MACH_MVEBU_V7
	select PINCTRL_ARMADA_375
	help
	  Say 'Y' here if you want your kernel to support boards based
	  on the Marvell Armada 375 SoC with device tree.

config MACH_ARMADA_38X
	bool "Marvell Armada 380/385 boards"
	depends on ARCH_MULTI_V7
	select ARM_ERRATA_720789
	select PL310_ERRATA_753970
	select ARM_GIC
	select ARM_GLOBAL_TIMER
	select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
	select ARMADA_370_XP_IRQ
	select ARMADA_38X_CLK
	select HAVE_ARM_SCU
	select HAVE_ARM_TWD if SMP
	select HAVE_SMP
	select MACH_MVEBU_V7
	select PINCTRL_ARMADA_38X
	help
	  Say 'Y' here if you want your kernel to support boards based
	  on the Marvell Armada 380/385 SoC with device tree.

config MACH_ARMADA_39X
	bool "Marvell Armada 39x boards"
	depends on ARCH_MULTI_V7
	select ARM_GIC
	select ARMADA_370_XP_IRQ
	select ARMADA_39X_CLK
	select CACHE_L2X0
	select HAVE_ARM_SCU
	select HAVE_ARM_TWD if SMP
	select HAVE_SMP
	select MACH_MVEBU_V7
	select PINCTRL_ARMADA_39X
	help
	  Say 'Y' here if you want your kernel to support boards based
	  on the Marvell Armada 39x SoC with device tree.

config MACH_ARMADA_XP
	bool "Marvell Armada XP boards"
	depends on ARCH_MULTI_V7
	select ARMADA_370_XP_IRQ
	select ARMADA_XP_CLK
	select CPU_PJ4B
	select MACH_MVEBU_V7
	select PINCTRL_ARMADA_XP
	help
	  Say 'Y' here if you want your kernel to support boards based
	  on the Marvell Armada XP SoC with device tree.

config MACH_DOVE
	bool "Marvell Dove boards"
	depends on ARCH_MULTI_V7
	select CACHE_L2X0
	select CPU_PJ4
	select DOVE_CLK
	select MACH_MVEBU_ANY
	select ORION_IRQCHIP
	select ORION_TIMER
	select PM_GENERIC_DOMAINS if PM
	select PINCTRL_DOVE
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Dove using flattened device tree.

config MACH_KIRKWOOD
	bool "Marvell Kirkwood boards"
	depends on ARCH_MULTI_V5
	select CPU_FEROCEON
	select GPIOLIB
	select KIRKWOOD_CLK
	select MACH_MVEBU_ANY
	select ORION_IRQCHIP
	select ORION_TIMER
	select FORCE_PCI
	select PCI_QUIRKS
	select PINCTRL_KIRKWOOD
	help
	  Say 'Y' here if you want your kernel to support boards based
	  on the Marvell Kirkwood device tree.

endif
